<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>4-展开运算符</title>
</head>

<body>
    <script type="text/javascript">
        let arr1 = [1, 3, 5, 7, 9];
        let arr2 = [2, 4, 6, 8, 10];
        console.log(...arr1);   //展开一个数组
        let arr3 = [...arr1, ...arr2];  //连接数组
        console.log(arr3)

        //在函数中使用
        function sum(...numbers) {
            // console.log("@", numbers)
            return numbers.reduce((perValue, currentValue) => {
                return perValue + currentValue
            })
        }

        console.log(sum(1, 2));

        //构造字面量对象是使用展开语法
        let person = { name: 'tom', age: 18 };
        let person2 = { ...person };         //字面量复制
        // console.log(...person)           //报错，展开运算符不能展开对象
        person.name = 'jerry';
        console.log(person2.name)
        console.log(person.name)

        //合并
        let person3 = { ...person, name: 'jack', address: '地球' };
        console.log(person3);
    </script>
</body>

</html>